define(function() {

    let init = function(onComplete) {
        let mapObj = new AMap.Map('container' , {
            resizeEnable: true
        });
        mapObj.plugin('AMap.Geolocation', function () {
            let geolocation = new AMap.Geolocation({
                enableHighAccuracy: true,//是否使用高精度定位，默认:true
                timeout: 10000,          //超过10秒后停止定位，默认：无穷大
                maximumAge: 0,           //定位结果缓存0毫秒，默认：0
                convert: true,           //自动偏移坐标，偏移后的坐标为高德坐标，默认：true
                showButton: false,        //显示定位按钮，默认：true
                buttonPosition: 'LB',    //定位按钮停靠位置，默认：'LB'，左下角
                buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量，默认：Pixel(10, 20)
                showMarker: true,        //定位成功后在定位到的位置显示点标记，默认：true
                showCircle: true,        //定位成功后用圆圈表示定位精度范围，默认：true
                panToLocation: true,     //定位成功后将定位到的位置作为地图中心点，默认：true
                zoomToAccuracy:true,      //定位成功后调整地图视野范围使定位位置及精度范围视野内可见，默认：false
            });
            mapObj.addControl(geolocation);
            geolocation.getCurrentPosition();
            AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
            AMap.event.addListener(geolocation, 'error', onError);      //返回定位出错信息
        });
    };

    let onError = function (data) {
        if(data.message == "Geolocation permission denied."){
            alert("没有获取位置的权限,请去系统设置里面授权");
        }
    };

    let searchPoi = function () {

        let mapObj = new AMap.Map('amap-container' , {
            resizeEnable: true
        });

        let marker = new AMap.Marker({
            map:mapObj,
            bubble:true
        });

        let lng = $('#lng').val();
        let lat = $('#lat').val();

        if(lng != '' && lat != ''){
            marker.setPosition(new AMap.LngLat(lng,lat));
        }



        //为地图注册click事件获取鼠标点击出的经纬度坐标
        let clickEventListener = mapObj.on('click', function(e) {
            marker.setPosition(e.lnglat);
            $('#lng').val(e.lnglat.lng);
            $('#lat').val(e.lnglat.lat);
        });

        mapObj.plugin(['AMap.Autocomplete' , 'AMap.PlaceSearch'],function(){
            let autoOptions = {
                city: "长沙", //城市，默认全国
                input: "address"//使用联想输入的input的id
            };
            autocomplete= new AMap.Autocomplete(autoOptions);

            let placeSearch = new AMap.PlaceSearch({
                city:'长沙',
                map:mapObj
            });

            AMap.event.addListener(autocomplete, "select", function(e){
                placeSearch.search(e.poi.name);
                $('#adcode').val(e.poi.adcode);
                $('#pcd').val(e.poi.district);
            });
        });
    };


    return {
        init: init,
        searchPoi : searchPoi
    };
});